# 1、函数的定义
def square(x):
    s = x ** 2
    return s


# 调用函数
print(square(100))


# 默认值参数
def split(s: str, sep=","):
    words = s.split(sep)
    return words


print(split("java,python,scala"))
print(split("java|python|scala", sep="|"))


# 可变参数
# 以元组的形式传入
def add(*i):
    s = sum(i)
    print(s)


add(100, 100, 1, 1, 2, 2, 1)


# 关键字参数
def student(id, name, **kw):
    print(id, name, kw)


student("001", "张三", age=23, sex="男")

# 递归
def fact(n):
    if n == 1:
        return 1
    return n * fact(n - 1)

print(fact(4))

# lambda表达式(匿名函数，函数的简化定义)
f = lambda x: x ** 2
print(f(100))